﻿//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using Microsoft.AspNetCore.Authorization;
//using Microsoft.AspNetCore.Mvc.Controllers;
//using Microsoft.OpenApi.Models;
//using Swashbuckle.AspNetCore.Swagger;
//using Swashbuckle.AspNetCore.SwaggerGen;

//namespace Common.Swagger
//{

//    /// 控制swagger中是否需要添加accesstoken验证
//    /// </summary>
//    public class AddAuthTokenHeaderParameter : IOperationFilter
//    {
//        public void Apply(OpenApiOperation operation, OperationFilterContext context)
//        {
//            //if (operation.Parameters == null) 
//            //{
//            //    operation.Parameters = new List<OpenApiParameter>();
//            //}
//            //var attrs = context.ApiDescription.ActionDescriptor.AttributeRouteInfo;

//            ////先判断是否是匿名访问,
//            //var descriptor = context.ApiDescription.ActionDescriptor as ControllerActionDescriptor;
//            //if (descriptor != null)
//            //{
//            //    var actionAttributes = descriptor.MethodInfo.GetCustomAttributes(inherit: true);
//            //    bool isAnonymous = actionAttributes.Any(a => a is AllowAnonymousAttribute);
//            //    //非匿名的方法,链接中添加accesstoken值
//            //    if (!isAnonymous)
//            //    {
//            //        operation.Parameters.Add(new OpenApiParameter()
//            //        {
//            //            Name = "accesstoken",
//            //            In =  ParameterLocation.Path,
//            //              Schema = new OpenApiSchema() 
//            //              {
//            //                 Type = "string",
//            //                 Example = new o
//            //              },
//            //            Required = true //是否必选
//            //        });
//            //    }
//            //}
//        }
//    }
//}
